package com.mastercard.assets.jpa;

import java.io.Serializable;
import javax.persistence.*;
import java.sql.Timestamp;
import java.util.List;


/**
 * The persistent class for the tbl_agencia database table.
 * 
 */
@Entity
@Table(name="tbl_agencia")
public class TblAgencia implements Serializable {
	private static final long serialVersionUID = 1L;
	private int cveAgencia;
	private String contacto;
	private String descripcion;
	private String direccion;
	private Timestamp fechaAlta;
	private String nombre;
	private byte status;
	private String telefono;
        private String extension;
        private List<TblUsuario> tblUsuarios;

    public TblAgencia() {
    }


	@Id
	@GeneratedValue(strategy=GenerationType.IDENTITY)
	@Column(name="cve_agencia", unique=true, nullable=false)
	public int getCveAgencia() {
		return this.cveAgencia;
	}

	public void setCveAgencia(int cveAgencia) {
		this.cveAgencia = cveAgencia;
	}


	@Column(nullable=false, length=255)
	public String getContacto() {
		return this.contacto;
	}

	public void setContacto(String contacto) {
		this.contacto = contacto;
	}


	@Column(nullable=false, length=2048)
	public String getDescripcion() {
		return this.descripcion;
	}

	public void setDescripcion(String descripcion) {
		this.descripcion = descripcion;
	}


	@Column(nullable=false, length=255)
	public String getDireccion() {
		return this.direccion;
	}

	public void setDireccion(String direccion) {
		this.direccion = direccion;
	}


	@Column(name="fecha_alta", nullable=false)
	public Timestamp getFechaAlta() {
		return this.fechaAlta;
	}

	public void setFechaAlta(Timestamp fechaAlta) {
		this.fechaAlta = fechaAlta;
	}


	@Column(nullable=false, length=255)
	public String getNombre() {
		return this.nombre;
	}

	public void setNombre(String nombre) {
		this.nombre = nombre;
	}


	@Column(nullable=false)
	public byte getStatus() {
		return this.status;
	}

	public void setStatus(byte status) {
		this.status = status;
	}


	@Column(nullable=false, length=50)
	public String getTelefono() {
		return this.telefono;
	}

	public void setTelefono(String telefono) {
		this.telefono = telefono;
	}
        
        @Column(nullable=false, length=45)
        public String getExtension() {
            return this.extension;
        }
        
        public void setExtension(String extension) {
            this.extension = extension;
        }
        
        //bi-directional many-to-many association to TblUsuario
    @ManyToMany
	@JoinTable(
		name="tbl_usuario_agencia"
		, joinColumns={
			@JoinColumn(name="cve_agencia", nullable=false)
			}
		, inverseJoinColumns={
			@JoinColumn(name="cve_usuario", nullable=false)
			}
		)
	public List<TblUsuario> getTblUsuarios() {
		return this.tblUsuarios;
	}

	public void setTblUsuarios(List<TblUsuario> tblUsuarios) {
		this.tblUsuarios = tblUsuarios;
	}

}